﻿// <copyright file="IElement.cs" company="Marcin Wosik">
// Copyright (c) 2010 All Right Reserved
// </copyright>
// <author>Marcin Wosik</author>
// <email>mawo11@gmail.com</email>
// <date>2010-02-25</date>
// <summary></summary>
namespace GameOfLife.Interfaces
{
    using System.Windows;
    using System.Windows.Shapes;
    using GameOfLife.GameData;
    using System.Collections.Generic;        
    
    /// <summary>
    /// Inteface for element which apper on board
    /// </summary>
    public interface IElement
    {
        IList<IElement> ConnectedElements { get;}

        Polygon Drawer { get; set; }

        ElementState Current { get; set; }

        ElementState NewState { get; set; }

        ColorMode ColoringMode { get; set; }

        bool IsAlive { get; }

        int PosX { get; set; }

        int PosY { get; set; }

        void ChangeState();

        void MakeConnection(GameSettings data);

        bool CheckCord(Point pt);

        void UpdateColor();
    }
}
